<!DOCTYPE html>
<meta charset="utf-8">
<meta property="og:image" itemprop="image primaryImageOfPage" content="https://hajimehoshi.github.io/ebiten/images/logo.png">
<meta name="description" content="Ebiten - A dead simple 2D game library in Go">
<link rel="shortcut icon" href="./favicon.png" type="image/png">
<link rel="icon" href="./favicon.png" type="image/png">
<title>Ebiten - A dead simple 2D game library in Go</title>

<link rel="stylesheet" href="./stylesheets/bootstrap.min.css">
<link rel="stylesheet" href="./stylesheets/highlight-github.css">
<link rel="stylesheet" href="./stylesheets/ebiten.css">
<script src="./scripts/googleanalytics.js"></script>

<nav class="navbar"><div class="container">
  <div class="d-flex flex-row" style="width: 100%;">
    <div class="nav"><a class="navbar-brand" href="./"><img src="images/logo_white.svg" alt="EBITEN"></a></div>
    <ul class="nav mr-auto align-middle">
      <li class="nav-item"><a class="nav-link" href="#platforms">Platforms</a></li>
      <li class="nav-item"><a class="nav-link" href="#features">Features</a></li>
      <li class="nav-item"><a class="nav-link" href="#examples">Examples</a></li>
      <li class="nav-item"><a class="nav-link" href="#projects-with-ebiten">Projects with Ebiten</a></li>
      <li class="nav-item"><a class="nav-link" href="#getting-started">Getting Started</a></li>
    </ul>
    <ul class="nav">
      <li class="nav-item"><a class="nav-link" href="https://github.com/hajimehoshi/ebiten">GitHub</a></li>
      <li class="nav-item"><a class="nav-link" href="https://godoc.org/github.com/hajimehoshi/ebiten">GoDoc</a></li>
      <li class="nav-item"><a class="nav-link" href="https://github.com/hajimehoshi/ebiten/wiki">Wiki</a>
      <li class="nav-item"><a class="nav-link" href="https://ebiten-playground.github.io/">Playground</a>
    </ul>
  </div>
</div></nav>

<header class="jumbotron jumbotron-fluid"><div class="container text-center">
  <h1><img src="images/logo.svg" alt="EBITEN" style="width: 220px; height: 242px;"></h1>
  <p class="lead">A dead simple 2D game library in Go</p>
</div></header>

<main><div class="container">
  <p>Stable version: v1.6.0 / Development version: v1.7.0-alpha</p>

  <h2 id="platforms">Platforms</h2>
  <dl class="row">
    <dt class="col-2 text-right">Desktops</dt>
    <dd class="col-10"><a href="https://github.com/hajimehoshi/ebiten/wiki/Windows">Windows</a>, <a href="https://github.com/hajimehoshi/ebiten/wiki/macOS">macOS</a>, <a href="https://github.com/hajimehoshi/ebiten/wiki/Linux">Linux</a>, <a href="https://github.com/hajimehoshi/ebiten/wiki/FreeBSD">FreeBSD</a></dd>
    <dt class="col-2 text-right">Mobiles</dt>
    <dd class="col-10"><a href="https://github.com/hajimehoshi/ebiten/wiki/Android">Android</a>, <a href="https://github.com/hajimehoshi/ebiten/wiki/iOS">iOS</a></dd>
    <dt class="col-2 text-right">Web browsers</dt>
    <dd class="col-10"><a href="https://github.com/hajimehoshi/ebiten/wiki/Web-Browsers">Chrome, Firefox, Safari and Edge on desktops</a> (powered by <a href="https://github.com/gopherjs/gopherjs">GopherJS</a>)</dd>
  </dl>
  <p><small>Note: Gamepads and keyboard are not available on Android/iOS.</small></p>

  <h2 id="features">Features</h2>
  <dl class="row">
    <dt class="col-2 text-right">2D Graphics</dt>
    <dd class="col-10">Geometry/Color matrix transformation, Various composition modes, Offscreen rendering, Fullscreen, Text rendering</dd>
    <dt class="col-2 text-right">Input</dt>
    <dd class="col-10">Mouse, Keyboard, Gamepads, Touches</dd>
    <dt class="col-2 text-right">Audio</dt>
    <dd class="col-10">MP3, Ogg/Vorbis, WAV, PCM, Syncing with game progress</dd>
  </dl>

  <h2 id="examples">Examples</h2>
  <h3>Games</h3>
  <div class="row">
  <div class="col-3">
      <a href="examples/2048.html"><img src="images/examples/2048.png" width="210" height="300" alt="Ebiten example: 2048" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/blocks.html"><img src="images/examples/blocks.png" width="256" height="240" alt="Ebiten example: blocks" class="img-thumbnail"></a>
    </div>
  </div>
  <h3>Graphics</h3>
  <div class="row">
  <div class="col-3">
      <a href="examples/alphablending.html"><img src="images/examples/alphablending.png" width="320" height="240" alt="Ebiten example: alphablending" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/filter.html"><img src="images/examples/filter.png" width="320" height="240" alt="Ebiten example: filter" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/flood.html"><img src="images/examples/flood.png" width="320" height="240" alt="Ebiten example: flood" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/font.html"><img src="images/examples/font.png" width="320" height="240" alt="Ebiten example: font" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/highdpi.html"><img src="images/examples/highdpi.png" width="320" height="240" alt="Ebiten example: highdpi" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/hsv.html"><img src="images/examples/hsv.png" width="320" height="240" alt="Ebiten example: hsv" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/hue.html"><img src="images/examples/hue.png" width="320" height="240" alt="Ebiten example: hue" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/infinitescroll.html"><img src="images/examples/infinitescroll.png" width="320" height="240" alt="Ebiten example: infinitescroll" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/life.html"><img src="images/examples/life.png" width="320" height="240" alt="Ebiten example: life" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/mandelbrot.html"><img src="images/examples/mandelbrot.png" width="320" height="320" alt="Ebiten example: mandelbrot" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/masking.html"><img src="images/examples/masking.png" width="320" height="240" alt="Ebiten example: masking" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/mosaic.html"><img src="images/examples/mosaic.png" width="320" height="240" alt="Ebiten example: mosaic" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/noise.html"><img src="images/examples/noise.png" width="320" height="240" alt="Ebiten example: noise" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/paint.html"><img src="images/examples/paint.png" width="320" height="240" alt="Ebiten example: paint" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/perspective.html"><img src="images/examples/perspective.png" width="320" height="240" alt="Ebiten example: perspective" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/rotate.html"><img src="images/examples/rotate.png" width="320" height="240" alt="Ebiten example: rotate" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/sprites.html"><img src="images/examples/sprites.png" width="320" height="240" alt="Ebiten example: sprites" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/tiles.html"><img src="images/examples/tiles.png" width="240" height="240" alt="Ebiten example: tiles" class="img-thumbnail"></a>
    </div>
  </div>
  <h3>Input</h3>
  <div class="row">
  <div class="col-3">
      <a href="examples/gamepad.html"><img src="images/examples/gamepad.png" width="320" height="240" alt="Ebiten example: gamepad" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/keyboard.html"><img src="images/examples/keyboard.png" width="320" height="240" alt="Ebiten example: keyboard" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/typewriter.html"><img src="images/examples/typewriter.png" width="320" height="240" alt="Ebiten example: typewriter" class="img-thumbnail"></a>
    </div>
  </div>
  <h3>Audio</h3>
  <div class="row">
  <div class="col-3">
      <a href="examples/audio.html"><img src="images/examples/audio.png" width="320" height="240" alt="Ebiten example: audio" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/piano.html"><img src="images/examples/piano.png" width="320" height="240" alt="Ebiten example: piano" class="img-thumbnail"></a>
    </div><div class="col-3">
      <a href="examples/sinewave.html"><img src="images/examples/sinewave.png" width="320" height="240" alt="Ebiten example: sinewave" class="img-thumbnail"></a>
    </div>
  </div>

  <p><a href="https://blog.golang.org/go-programming-language-turns-two">The Gopher photographs by Chris Nokleberg</a> are licensed under <a href="https://creativecommons.org/licenses/by/3.0/">the Creative Commons 3.0 Attributions License</a>.</p>

  <h3>Execute the examples</h3>
  <div class="card"><pre class="card-body"><code class="language-bash">go get github.com/hajimehoshi/ebiten/...
cd $GOPATH/src/github.com/hajimehoshi/ebiten/examples
go run -tags=example rotate/main.go</code></pre></div>
  <p>Note that you need to add <code>-tags=example</code> to run examples.</p>

  <h2 id="projects-with-ebiten">Projects with Ebiten</h2>
  <div class="row">
    <div class="col-3">
      <a href="https://github.com/hajimehoshi/go-inovation"><img src="images/projects/inovation.png" width="1024" height="500" alt="Inovation 2007" class="img-thumbnail"></a>
    </div>
    <div class="col-3">
      <a href="http://blockbros.net/tsugunai/"><img src="images/projects/clock_of_atonement.png" width="480" height="480" alt="Clock of Atonement" class="img-thumbnail"></a>
    </div>
    <div class="col-3">
      <a href="http://blockbros.net/bluebird/"><img src="images/projects/bluebird_of_happiness.png" width="540" height="540" alt="Bluebird of Happiness" class="img-thumbnail"></a>
    </div>
  </div>
  <p><a href="https://github.com/hajimehoshi/ebiten/wiki/Works">Find more nice works with Ebiten!</a></p>

  <h2 id="getting-started">Getting Started</h2>

  <p>Let's build a simple "Hello world!" game to get started with Ebiten.
First create a new directory (<code>mkdir hello_world</code>), and change
into it (<code>cd hello_world</code>). Type the following code into
the <code>main.go</code> file:</p>

  <div class="card"><pre class="card-body"><code class="language-go">package main

import (
        "github.com/hajimehoshi/ebiten"
        "github.com/hajimehoshi/ebiten/ebitenutil"
)

func update(screen *ebiten.Image) error {
        ebitenutil.DebugPrint(screen, "Hello world!")
        return nil
}

func main() {
        ebiten.Run(update, 320, 240, 2, "Hello world!")
}
</code></pre></div>

  <p>Run the <code>go run</code> command to start the
game. There you have it, your first Ebiten game!</p>

</div></main>

<footer><div class="container">
  <p>© 2013 Hajime Hoshi</p>
  <p>Code is licensed under <a href="https://github.com/hajimehoshi/ebiten/blob/master/LICENSE">the Apache License 2.0</a>.</p>
  <p>The content of this page is licensed under <a href="https://creativecommons.org/licenses/by/4.0/">the Creative Commons Attribution 4.0 License</a>.</p>
</div></footer>

<script src="./scripts/highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
